Method and system for providing validated, auditable, and immutable inputs to a smart contract

ABSTRACT

A method for posting of auditable, immutable data to a blockchain includes: receiving a blockchain comprised of a plurality of blocks, each block being comprised of at least a block header and one or more transaction values, wherein each transaction value includes at least a transaction hash; receiving a data file associated with a specific transaction hash included in a block in the blockchain, wherein the data file includes one or more variables; modifying at least one of the one or more variables included in the data file; generating a new hash value via application of one or more hashing algorithms to the modified data file; generating a new transaction value based on at least the generated new hash value and the specific transaction hash; digitally signing the generated new transaction value; and electronically transmitting the signed new transaction value.

FIELD

The present disclosure relates to the posting of immutable data to ablockchain comprised of inputs for which the result of input into asmart contract is deterministic, enabling the validation and auditing ofperformance of the associated transaction.

BACKGROUND

As technology advances and becomes more sophisticated, businesses,individuals and other entities often look for ways to improve how theydo business and communicate with one another. One element in whichcomputing technology has drastically changed the landscape is theconducting of transactions between two entities. Transactions can occurbetween two entities for any variety of reasons: payment to or from, thepurchase of goods or services, exchange of data, acquisition ofproperty, consideration for a contract, etc. In many cases, computingtechnology may provide a platform for which an entity may prove orverify a transaction and data associated therewith, as well as performcommunications related thereto. For instance, sending money via acomputing device can be performed significantly quicker than physicaldelivery.

However, computing devices and electronic communications can sometimesbe compromised, placing entities and their property at risk. A number ofmethods have been developed to help secure such communications, such assecure communication channels and protocols and encryption for datamessages. Similarly, methods have been developed to secure the storageof data. One such method is the use of a blockchain, where the chain isdecentralized and where data stored therein is immutable, providing forreliable proof of data at a specific time, such as agreement of specificcontract terms.

However, while blockchains may be useful for validating an agreement orother data related to the planning or initiation of a transaction,blockchains currently lack capabilities for validating and auditing theperformance of such a transaction. That is, there is a technicalchallenge as to how using blockchains for this purpose can be done.Thus, there is a need for a technical solution to provide for theauditing and validation of the performance of actions associated with atransaction using the blockchain.

SUMMARY

The present disclosure provides a description of systems and methods forthe posting of auditable, immutable data to a blockchain and theauditing and verification thereof. The inputs to a smart contract arestored in a blockchain and immutable, and are such that the output ofthe smart contract is deterministic based on the nature of the smartcontract and associated inputs. As a result, an entity wishing to verifyperformance related to a smart contract may be able to generate theexpected output for use in auditing and verifying the performance.Furthermore, by posting the data associated with such performance to theblockchain, further performance may also be audited and verifiable,enabling the accurate capturing, auditing, and validation of the entireperformance of a transaction between two or more entities.

A method for posting of auditable, immutable data to a blockchainincludes: receiving, by a receiving device of a processing server, ablockchain comprised of a plurality of blocks, each block beingcomprised of at least a block header and one or more transaction values,wherein each transaction value includes at least a transaction hash;receiving, by the receiving device of the processing server, a data fileassociated with a specific transaction hash included in a block in theblockchain, wherein the data file includes one or more variables;modifying, by a data modification module of the processing server, atleast one of the one or more variables included in the data file;generating, by a hashing module of the processing server, a new hashvalue via application of one or more hashing algorithms to the modifieddata file; generating, by a generation module of the processing server,a new transaction value based on at least the generated new hash valueand the specific transaction hash; digitally signing, by a signingmodule of the processing server, the generated new transaction value;and electronically transmitting, by a transmitting device of theprocessing server, the signed new transaction value.

A method for auditing and verification of deterministic data posted to ablockchain includes: receiving, by a receiving device of a processingserver, a blockchain comprised of a plurality of blocks, each blockbeing comprised of at least a block header and one or more transactionvalues, wherein each block header includes at least a timestamp and eachtransaction value includes at least a transaction hash; executing, by aquerying module of the processing server, a first query on theblockchain to identify a first transaction value, wherein the firsttransaction value is associated with an executable script; executing, bya processor of the processing server, the executable script using aplurality of predetermined input values to receive at least one outputvariable; generating, by a hashing module of the processing server, ahash value based on at least the plurality of predetermined input valuesand the at least one output variable; generating, by a generation moduleof the processing server, a new transaction value based on at least thegenerated hash value and the transaction hash included in the firsttransaction value; and verifying, by a verification module of theprocessing server, a second transaction value included in a block in theblockchain where the second transaction value corresponds to thegenerated new transaction value.

A system for posting of auditable, immutable data to a blockchainincludes: a receiving device of a processing server configured toreceive a blockchain comprised of a plurality of blocks, each blockbeing comprised of at least a block header and one or more transactionvalues, wherein each transaction value includes at least a transactionhash, and a data file associated with a specific transaction hashincluded in a block in the blockchain, wherein the data file includesone or more variables; a data modification module of the processingserver configured to modify at least one of the one or more variablesincluded in the data file; a hashing module of the processing serverconfigured to generate a new hash value via application of one or morehashing algorithms to the modified data file; a generation module of theprocessing server configured to generate a new transaction value basedon at least the generated new hash value and the specific transactionhash; a signing module of the processing server configured to digitallysign the generated new transaction value; and a transmitting device ofthe processing server configured to electronically transmit the signednew transaction value.

A system for auditing and verification of deterministic data posted to ablockchain includes: a receiving device of a processing serverconfigured to receive a blockchain comprised of a plurality of blocks,each block being comprised of at least a block header and one or moretransaction values, wherein each block header includes at least atimestamp and each transaction value includes at least a transactionhash; a querying module of the processing server configured to execute afirst query on the blockchain to identify a first transaction value,wherein the first transaction value is associated with an executablescript; a processor of the processing server configured to execute theexecutable script using a plurality of predetermined input values toreceive at least one output variable; a hashing module of the processingserver configured to generate a hash value based on at least theplurality of predetermined input values and the at least one outputvariable; a generation module of the processing server configured togenerate a new transaction value based on at least the generated hashvalue and the transaction hash included in the first transaction value;and a verification module of the processing server configured to verifya second transaction value included in a block in the blockchain wherethe second transaction value corresponds to the generated newtransaction value.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The scope of the present disclosure is best understood from thefollowing detailed description of exemplary embodiments when read inconjunction with the accompanying drawings. Included in the drawings arethe following figures:

FIG. 1 is a block diagram illustrating a high level system architecturefor the posting of immutable data related to a transaction to ablockchain and the auditing and verification thereof in accordance withexemplary embodiments.

FIG. 2 is a block diagram illustrating the processing server of thesystem of FIG. 1 for the posting, auditing, and verification oftransaction data in a blockchain utilizing immutable inputs to a smartcontract in accordance with exemplary embodiments.

FIG. 3 is a flow diagram illustrating a process for the posting of datato a blockchain and the auditing and verification of performance relatedto a smart contract associated therewith in the system of FIG. 1 inaccordance with exemplary embodiments.

FIG. 4 is a flow chart illustrating an exemplary method for postingauditable, immutable data to a blockchain in accordance with exemplaryembodiments.

FIG. 5 is a flow chart illustrating an exemplary method for auditing andverification of deterministic data posted to a blockchain in accordancewith exemplary embodiments.

FIG. 6 is a block diagram illustrating a computer system architecture inaccordance with exemplary embodiments.

Further areas of applicability of the present disclosure will becomeapparent from the detailed description provided hereinafter. It shouldbe understood that the detailed description of exemplary embodiments areintended for illustration purposes only and are, therefore, not intendedto necessarily limit the scope of the disclosure.

DETAILED DESCRIPTION Glossary of Terms

Blockchain—A public ledger of all transactions of a blockchain-basedcurrency. One or more computing devices may comprise a blockchainnetwork, which may be configured to process and record transactions aspart of a block in the blockchain. Once a block is completed, the blockis added to the blockchain and the transaction record thereby updated.In many instances, the blockchain may be a ledger of transactions inchronological order, or may be presented in any other order that may besuitable for use by the blockchain network. In some configurations,transactions recorded in the blockchain may include a destinationaddress and a currency amount, such that the blockchain records how muchcurrency is attributable to a specific address. In some instances, thetransactions are financial and others not financial, or might includeadditional or different information, such as a source address,timestamp, etc. In some embodiments, a blockchain may also oralternatively include nearly any type of data as a form of transactionthat is or needs to be placed in a distributed database that maintains acontinuously growing list of data records hardened against tampering andrevision, even by its operators, and may be confirmed and validated bythe blockchain network through proof of work and/or any other suitableverification techniques associated therewith. In some cases, dataregarding a given transaction may further include additional data thatis not directly part of the transaction appended to transaction data. Insome instances, the inclusion of such data in a blockchain mayconstitute a transaction. In such instances, a blockchain may not bedirectly associated with a specific digital, virtual, fiat, or othertype of currency.

Smart Contract—Computer protocols that facilitate, verify, or enforcethe negotiation or performance of a transaction. A smart contract may beformatted as an executable script or other type of computing functionsuch that, when the contract is executed by a suitable processor, one ormore predetermined actions are performed. In many instances, a smartcontract may emulate the clauses of a traditional contract, such as bybeing configured to perform the actions associated with positiveperformance or negative performance (e.g., breach) of the terms of thesmart contract. For instance, a smart contract may be associated with adeal for the purchase of widgets, where the smart contract is configuredto (i) initiate payment to the supplier if the buyer receives thewidgets, or (ii) notify the buyer if the supplier has not supplied thewidgets by a predetermined date.

System for Auditing and Validation for Immutable Smart Contract Inputs

FIG. 1 illustrates a system 100 for the storing of immutable inputs to asmart contract in a blockchain, and the auditing and verification ofperformance associated therewith based on a deterministic output of thesmart contract.

The system 100 may include a processing server 102. The processingserver 102, discussed in more detail below, may be specificallyconfigured to perform actions discussed herein related to the generationof data for posting to a blockchain and the auditing and verificationthereof, making it a special purpose computer when programmed to carryout these functions. The processing server 102 may be a computing systemor part of a computing system for an entity that is configured forparticipation in an electronic transaction between the entity andanother entity. For instance, the processing server 102 may exchangeelectronic communications with a third party system 104 for a secondentity also participating in an electronic transaction. As discussedherein, each of the functions performed by the processing server 102 andthe third party system 104 may also be performed by the correspondingcomputing device(s).

The system 100 may also include a blockchain network 106, which may beassociated with a blockchain to which data discussed herein may beposted. The blockchain network 106 may be comprised of a plurality ofblockchain nodes 108, such as the blockchain nodes 108 a and 108 billustrated in FIG. 1. Although only two are shown in the illustrationfor clarity, it is contemplated many more, dozens, hundreds or eventhousands, or even more might be used. The blockchain nodes 108 may beconfigured to generate and verify new blocks for addition to theblockchain using methods and systems that will be apparent to personshaving skill in the relevant art. In some embodiments, the processingserver 102 and/or third party system 104 may be configured to operate asa blockchain node 108 for the blockchain network 106. For instance, theprocessing server 102 may be configured to, in addition to the functionsdiscussed herein, generate new blocks, verify blocks, and add the new,verified blocks to the blockchain.

The entity associated with the processing server 102 (also referred toherein as a “first entity”) may communicate with the entity associatedwith the third party system 104 (also referred to herein as a “secondentity”) regarding a proposed electronic transaction. In someembodiments, additional entities may be involved in a transaction. Insuch embodiments, the additional entities may be associated with thirdparty systems 104 where the functions performed thereby may be the samefunctions performed by the third party system 104 as discussed herein.The proposed electronic transaction may be any transaction where atleast one of the involved entities is expected to perform an action,whose performance may be verified by the other entity. Electronictransactions may include, for example, a purchase of goods or services,exchange of data, performance contract, etc. For instance, in anexample, the transaction may be a service contract where the firstentity may agree to pay a $1,000 down payment for the renovation of anoffice, the second entity may agree to renovate the office by apredetermined time, and the first entity may pay $9,000 once the work iscompleted.

The first entity and the second entity may agree on the terms associatedwith the transaction, which may be referred to herein as “inputs.” Forinstance, in the above example, the inputs may include the $1,000 downpayment, a due date for the down payment, due date for performance ofthe renovation, the $9,000 final payment, and a due date for the finalpayment. The processing server 102 and/or third party system 104 may beconfigured to electronically transmit the agreed inputs to a blockchainnode 108 as a transaction value for a transaction to be added to theblockchain associated therewith. The transaction value may, as discussedin more detail below, be a hash value indicative of the transactioninputs. As a result, the agreed-upon inputs may be stored in theblockchain and immutable due to the nature of the blockchain, where hashvalues stored in headers of the blocks of the blockchain may ensureimmutability of the data stored therein. In some embodiments, theblockchain may be used to store immutable data associated with both theinputs and agreement of the inputs by one or both entities. Forinstance, the first entity and/or second entity may use acceptanceframes that are included in transaction hashes to indicate acceptance ofthe terms. Additional information regarding acceptance frames can befound in U.S. patent application Ser. No. 14/938,213, entitled “Methodand System for Validation of Hashed Data via Acceptance Frames,” bySteven C. Davis, which is herein incorporated by reference in itsentirety.

The transaction value for the transaction between the first and secondentities may be comprised of each of the inputs, or in some instances,may include a single transaction hash indicative of the inputs. Forinstance, the transaction hash may be generated via the application ofone or more hashing algorithms to the inputs, such as by combining theinputs in a predetermined manner (e.g., combining each input into asingle string, using a divider, storing the inputs in a data file,etc.), or by generating a Merkle tree of the inputs and using the rootof the Merkle tree. In instances where a hash value may be generated,the processing server 102 may be configured to store a key-value pair ina key-value database, discussed in more detail below, where the hashvalue may be a key in a key-value pair, with the corresponding valuebeing the inputs used in generation of the key. In such instances, thethird party system 104 may generate the transaction hash using the samehashing algorithm(s) and data formatting for its own key-value pair,which may thereby be used to verify that the transaction hash posted tothe blockchain is accurate as to the agreed-upon inputs.

Once the transaction has been posted to the blockchain, the involvedentities may update the blockchain once any performance is executed forthe transaction, such that the other entity or entities involved in thetransaction can monitor the blockchain to identify when such performancehas occurred and to verify the performance. In an exemplary embodiment,a smart contract may be used to perform actions related to theperformance of the transaction between the first and second entities.For example, the smart contract may be configured to generate theupdates for the blockchain transactions, send messages to the entitywhose performance is next once one action has been completed, invalidatethe transaction and initiate any actions for non-performance, etc. Forinstance, in the above example, if the first entity does not pay thedown payment of $1,000 by the due date, the smart contract may execute(e.g., after the due date if the blockchain has not been updated toindicate the payment) to inform the second entity of the non-payment andto refund any payments made by the first entity if the $1,000 total wasnot reached.

In such embodiments, the transaction value may include the smartcontract or a reference thereto, or the smart contract or associatedreference may be used in the generation of the transaction hash thatcomprises the transaction value. The reference may be, for instance, ahash value for the smart contract itself, such as may be generated viahashing of the smart contract and/or as the key in a key-value pair thatincludes the smart contract as a value. In some cases, one smartcontract may be used for a plurality of different transactions, whereeach transaction value may include or incorporate the associatedreference. In such cases, the smart contract may be executed using thetransaction inputs as input, to perform the programmed functionsaccordingly. For instance, the smart contract may be used for aplurality of service transactions, where, as in the above example, thesmart contract may receive the $1,000 and due date of the down paymentas input, where execution of the smart contract (e.g., by the processingserver 102 or blockchain node 108) checks for payment of the specified$1,000 down payment by the specified due date.

The first entity (e.g., or any involved entity that is next to performbased on the transaction) may be perform the required action as part ofthe transaction. For instance, in the above example, the first entitymay pay the $1,000 prior to the due date for the down payment. Theprocessing server 102 may generate a new transaction value for thetransaction following performance of the action. The new transaction mayinclude modified inputs for the transaction based on the performance.For instance, the inputs may include an additional input that serves asproof of the down payment (e.g., a confirmation number for thetransaction, a receipt for the transaction, etc.), which may also beprovided by the smart contract. For example, the smart contract mayverify the payment using any suitable method and may output a referencenumber for inclusion in the transaction value (e.g., or transaction hashincluded therein, as applicable).

Once the transaction value has been generated, the processing server 102may digitally sign the new transaction value using a suitable method.For instance, the processing server 102 may possess a private key of akey pair, which may be used in digitally signing the new transactionvalue via a suitable signing algorithm, which may be known to the thirdparty system 104. In such an instance, the third party system 104 may beprovided with a copy of the corresponding public key from the key pair.The processing server 102 may electronically transmit the digitallysigned new transaction value to a blockchain node 108 for posting to theblockchain.

Once the updated transaction hits the blockchain, the third party system104 may be configured to retrieve the transaction value to verify thatthe processing server 102 had performed its action as part of thetransaction. In instances where the transaction value is digitallysigned, verification may include verification of the digital signature,such as using the public key supplied to the third party system 104 fromthe processing server 102. Verification may also include verificationthat the transaction value is an expected value.

In an exemplary embodiment, the smart contract may be a deterministiccontract, such that the output from the smart contract upon theperformance of an action can be determined ahead of the performance ofthe action. For instance, in the above example, it is predetermined thatthe first entity will either pay the $1,000 by the specific due date, orbreach. In such embodiments, the inputs may be referred to herein as“deterministic inputs,” such that outputs from the smart contract may bedetermined accordingly. In these embodiments, the third party system 104may be configured to generate an estimated new transaction value basedon knowledge of the deterministic inputs for the transaction and theexpected action to be performed by the first entity. For instance, inthe above example, the third party system 104 may generate the estimatednew transaction value using the output from the smart contract being fedwith the deterministic inputs used in the original transaction value ifthe $1,000 down payment is paid by the due date.

The third party system 104 may use the estimated new transaction valueto verify and audit the first entity's performance, by comparing thetransaction value retrieved from the blockchain with the expected,estimated transaction value. As such, an entity involved in atransaction may be configured to verify that the other entity orentities in the transaction are performing their functions as required.The use of the blockchain to store the transaction values may alsoensure that the proof of actions being performed is immutable, toprevent collusion or fraud on the part of entities involved in thetransaction, and also to serve as an auditable, and easily accessible,record of the full performance of a transaction. As, in standardimplementations, each block added to the blockchain is time stamped, thetransaction values thus reflect the terms of the transaction, anyactions performed, and when such actions were performed, to provideenough data suitable for auditing the performance.

In some embodiments, the processing server 102 may be configured to usetemplates for the generation and/or storage of inputs for a transaction.Templates may be used to specify the data fields that may be necessaryfor the use of a specific smart contract, to ensure accurate processingand data consistency. For instance, in the above example, a template mayspecify the criteria that needs to be provided (e.g., the three duedates and two payment amounts), how such data needs to be formatted, andother data regarding the inputs for the transaction. In some cases, thetemplate may be used to generate a data file that serves as atransaction value or is hashed to generate the transaction value for thetransaction. In other cases, the template may be referred to by or inthe transaction value. For example, the template may have a referenceidentifier associated therewith (e.g., a hash value of the template, akey in a key-value pair with the template comprising the value, etc.),which may be included in the transaction value, such as being atransaction input or used in the generation of a transaction hash.

The first entity, second entity, and any other entity involved in thetransaction may continue to perform actions as set forth in thetransaction, where the blockchain is updated accordingly by each entitywith the transaction values being digitally signed by the respectiveentity. The continued updating of the blockchain may ensure thatperformance of the transaction is auditable every step of the way, withthe immutability of the blockchain providing that the auditing andverifying of the performance is accurate and protected from fraud. Theuse of smart contracts with deterministic inputs may ensure that fraudcannot be performed, that the results of actions may be predicted forfaster and more accurate verifications, and that no entity can tamperwith the history of a transaction to cover for any fraudulent activity.As a result, the methods and systems discussed herein provide for atechnological solution that provides greater accuracy, efficiency, andconfidence than traditional systems.

Processing Server

FIG. 2 illustrates an embodiment of a processing server 102 in thesystem 100. It will be apparent to persons having skill in the relevantart that the embodiment of the processing server 102 illustrated in FIG.2 is provided as illustration only and may not be exhaustive to allpossible configurations of the processing server 102 suitable forperforming the functions as discussed herein. For example, the computersystem 600 illustrated in FIG. 6 and discussed in more detail below maybe a suitable configuration of the processing server 102. In someembodiments, the third party system 104 in the system 100 as illustratedin FIG. 1 and discussed herein may be implemented using the componentsof the processing server 102 as illustrated in FIG. 2 and discussedbelow.

The processing server 102 may include a receiving device 202. Thereceiving device 202 may be configured to receive data over one or morenetworks via one or more network protocols. In some instances, thereceiving device 202 may be configured to receive data from third partysystems 104, blockchain networks 106, blockchain nodes 108, and othersystems and entities via one or more communication methods, such as nearfield communication, Bluetooth, the Internet, local area networks, etc.In some embodiments, the receiving device 202 may be comprised ofmultiple devices, such as different receiving devices for receiving dataover different networks, such as a first receiving device for receivingdata over a local area network and a second receiving device forreceiving data via the Internet. The receiving device 202 may receiveelectronically transmitted data signals, where data may be superimposedor otherwise encoded on the data signal and decoded, parsed, read, orotherwise obtained via receipt of the data signal by the receivingdevice 202. In some instances, the receiving device 202 may include aparsing module for parsing the received data signal to obtain the datasuperimposed thereon. For example, the receiving device 202 may includea parser program configured to receive and transform the received datasignal into usable input for the functions performed by the processingdevice to carry out the methods and systems described herein.

The receiving device 202 may be configured to receive data signalselectronically transmitted by blockchain networks 106 and/or blockchainnodes 108 associated therewith that may be superimposed or otherwiseencoded with blockchain data. The blockchain may be comprised of aplurality of blocks, each block being comprised of at least a blockheader and one or more transaction values. A block header may include atleast a timestamp and a reference to a prior block in the blockchain. Insome embodiments, the reference may be a hash of the block header of theprior block. In some cases, a block header may also include a Merkleroot of a Merkle tree generated for the transaction values included inthe block. In the methods and systems discussed herein, the one or moretransaction values may each be comprised of a transaction hash, whichmay be a hash of at least the inputs for the related transaction. Thereceiving device 202 may also be configured to receive data signalselectronically transmitted by third party systems 104, such as may besuperimposed or otherwise encoded with deterministic inputs or dataassociated therewith, such as a template reference, smart contractreference, performance data, etc.

The processing server 102 may also include a communication module 204.The communication module 204 may be configured to transmit data betweenmodules, engines, databases, memories, and other components of theprocessing server 102 for use in performing the functions discussedherein. The communication module 204 may be comprised of one or morecommunication types and utilize various communication methods forcommunications within a computing device. For example, the communicationmodule 204 may be comprised of a bus, contact pin connectors, wires,etc. In some embodiments, the communication module 204 may also beconfigured to communicate between internal components of the processingserver 102 and external components of the processing server 102, such asexternally connected databases, display devices, input devices, etc. Theprocessing server 102 may also include a processing device. Theprocessing device may be configured to perform the functions of theprocessing server 102 discussed herein as will be apparent to personshaving skill in the relevant art, such as a processor configured toexecute smart contracts, such as via the execution of executable scriptsassociated therewith. In some embodiments, the processing device mayinclude and/or be comprised of a plurality of engines and/or modulesspecially configured to perform one or more functions of the processingdevice, such as a querying module 208, hashing module 210, generationmodule 212, data modification module 214, signing module 216,verification module 218, etc. As used herein, the term “module” may besoftware or hardware particularly programmed to receive an input,perform one or more processes using the input, and provides an output.The input, output, and processes performed by various modules will beapparent to one skilled in the art based upon the present disclosure.

The processing server 102 may also include a memory 206. The memory 206may be configured to store data for use by the processing server 102 inperforming the functions discussed herein, such as public and privatekeys, symmetric keys, etc. The memory 206 may be configured to storedata using suitable data formatting methods and schema and may be anysuitable type of memory, such as read-only memory, random access memory,etc. The memory 206 may include, for example, encryption keys andalgorithms, communication protocols and standards, data formattingstandards and protocols, program code for modules and applicationprograms of the processing device, and other data that may be suitablefor use by the processing server 102 in the performance of the functionsdisclosed herein as will be apparent to persons having skill in therelevant art. In some embodiments, the memory 206 may be comprised of ormay otherwise include a relational database that utilizes structuredquery language for the storage, identification, modifying, updating,accessing, etc. of structured data sets stored therein.

The memory 206 may be configured to store the blockchain, such as may bereceived from the blockchain network 106, as discussed above. The memory206 may also be configured to store a key-value database, which may becomprised of a plurality of key-value pairs. In such instances,key-value pairs may include pairs where a hash value is used as a key,with the data used to generate the hash value being the correspondingvalue, which may be used to store deterministic inputs, data templates,smart contracts, and other data for use in performing the functionsdiscussed herein. The memory 206 may also be configured to store privatekeys and public keys of key pairs, which may be configured for use indigitally signing transaction values and the verification of digitalsignatures.

The processing server 102 may include a querying module 208. Thequerying module 208 may be configured to execute queries on databases toidentify and perform other actions related to information. The queryingmodule 208 may receive one or more data values or query strings, and mayexecute a query string based thereon on an indicated database, such asthe memory 206, to identify, modify, insert, update, etc. informationstored therein. The querying module 208 may output identifiedinformation to an appropriate engine or module of the processing server102 as necessary. The querying module 208 may, for example, execute aquery on the memory 206 to identify a private key for use in digitallysigning a transaction value, to add a new key-value pair for a newtransaction being tracked using the blockchain, to identify a smartcontract for execution for use in the verification of performance of atransaction, etc.

The processing server 102 may also include a hashing module 210. Thehashing module 210 may be configured to hash data for the processingserver 102 for the generation of hash values. The hashing module 210 mayreceive data to be hashed as input, may generate hash values via theapplication of one or more hashing algorithms thereto, and may outputthe resulting hash value to another module or engine of the processingserver 102. In some embodiments, the input may include the one or morehashing algorithms or indications thereof. In other embodiments, thehashing module 210 may be configured to identify the hashingalgorithm(s) (e.g., in the memory 206) to be used. The hashing module210 may be configured, for example, to generate hash values oftransaction values, templates, smart contracts, and other data via theapplication of one or more hashing algorithms thereto. In someinstances, the generated hash values may be used for storage in theblockchain, serving as keys in key-value pairs stored in the memory 206,or for verification of performance based on blockchain data.

The processing server 102 may also include a generation module 212. Thegeneration module 212 may be configured to generate data for use inperforming the functions of the processing server 102 as discussedherein. The generation module 212 may receive instructions as input,which may be used to generate data, and the generated data output to oneor more engines or modules of the processing server 102. In someinstances, the instructions input to the generation module 212 may beaccompanied by data for use therewith. For example, the generationmodule 212 may be configured to generate transaction values fortransactions, such as based on deterministic inputs. In some instances,a transaction value may also be generated based on performance data. Insome cases, the generation module 212 may be configured to generate keypairs for use in the digital signing of transaction values. In someembodiments, the generation module 212 may be configured to generate adata file, such as may include deterministic inputs using apredetermined format (e.g., detailed in a template), which may be hashedfor use as a transaction value to be stored in the blockchain.

The processing server 102 may also include a data modification module214. The data modification module 214 may be configured to modify dataand/or data files for use in performing the functions of the processingserver 102 as discussed herein. The data modification module 214 mayreceive instructions as input, which may be used to modify data storedin or received by the processing server 102, and the modified dataoutput to one or more engines or modules of the processing server 102.For example, the data modification module 214 may be configured tomodify a data file (e.g., storing deterministic inputs) to change one ormore inputs, such as by removing an input, adding an input, changing thevalue of an input, etc., such as to reflect performance of a transactionor for estimation of the performance of a transaction.

The processing server 102 may also include a signing module 216. Thesigning module 216 may be configured to digitally sign data as part ofthe functions of the processing server 102 as discussed herein. Thesigning module 216 may receive data to be digitally signed as input, maydigitally sign the data, and may output the digitally signed data, or atleast the digital signature, to another module or engine of theprocessing server 102. The signing module 216 may be configured todigitally sign data via the use of a public key and one or more signingalgorithms. In some embodiments, the input to the signing module 216 mayinclude the private key and/or signing algorithms to be used ingenerating the digital signature. In other embodiments, the signingmodule 216 may be configured to identify (e.g., in the memory 206, suchas via instructions submitted to the querying module 208) the privatekey and signing algorithm(s). In an example, the signing module 216 maybe configured to digitally sign a transaction value generated via thedeterministic inputs of a transaction, such as following performance bythe associated entity.

The processing server 102 may also include a verification module 218.The verification module 218 may be configured to verify data for theprocessing server 102. The verification module 218 may receive data tobe verified as input, may perform verification of the data, and mayoutput a result (e.g., indicating positive or negative verification) ofthe verification to another module or engine of the processing server102. For example, the verification module 218 may be configured toverify the digital signature on a transaction value (e.g., read from ablock of the blockchain) using a public key (e.g., stored in the memory206 and read therefrom), and to verify transaction values, such as bythe comparison of an estimated transaction value (e.g., generated by thegeneration module 212) with a transaction value read from theblockchain.

The processing server 102 may also include a transmitting device 220.The transmitting device 220 may be configured to transmit data over oneor more networks via one or more network protocols. In some instances,the transmitting device 220 may be configured to transmit data to thirdparty systems 104, blockchain networks 106, blockchain nodes 108, andother entities via one or more communication methods, such as near fieldcommunication, Bluetooth, radio frequency, the Internet, local areanetworks, etc. In some embodiments, the transmitting device 220 may becomprised of multiple devices, such as different transmitting devicesfor transmitting data over different networks, such as a firsttransmitting device for transmitting data over a local area network anda second transmitting device for transmitting data via the Internet. Thetransmitting device 220 may electronically transmit data signals thathave data superimposed that may be parsed by a receiving computingdevice. In some instances, the transmitting device 220 may include oneor more modules for superimposing, encoding, or otherwise formattingdata into data signals suitable for transmission.

The transmitting device 220 may be configured to electronically transmitdata signals to blockchain nodes 108 associated with a blockchainnetwork 106 that may be superimposed or otherwise encoded withtransaction values for posting to the blockchain. In some embodiments,the transmitting device 220 may be configured to electronically transmitdata signals to third party systems 104, such as for the exchange ofdeterministic inputs, smart contract references, template references,public keys, or other data that may be exchanged for use in theperforming the functions discussed herein.

Process for Posting Immutable, Auditable Data to the Blockchain

FIG. 3 illustrates the posting of data related to the performance of atransaction to a blockchain in the system 100 where the data isimmutable and also independently verifiable by third party systems 104and other entities.

In step 302, the processing server 102 may (e.g., via the first entityassociated therewith) agree on terms for a transaction with a secondentity (e.g., via the third party system 104 associated therewith). Theterms for the transaction may be used as deterministic inputs for thetransaction. For instance, in the above example, the terms may includethe down payment amount, full payment amount, due date for the downpayment, due date for the service being purchased, and due date for thefull payment. In an exemplary embodiment, each of the transaction termsmay be deterministic. In step 304, the third party system 104 mayreceive (e.g., via a receiving device 202) the transaction terms thathave been agreed upon. In some embodiments, the transaction terms may bereceived via the blockchain, such as through the use of acceptanceframes.

In step 306, the third party system 104 may generate (e.g., via ahashing module 210 and/or generation module 212) a transaction value forthe transaction based on at least the deterministic inputs. Forinstance, in one example, a data file may be generated that includeseach of the deterministic inputs, which may be hashed to generate thetransaction value. In some cases, the transaction value may also include(e.g., be based on) a reference to a smart contract and/or a template.In step 308, the third party system 104 may electronically transmit(e.g., via a transmitting device 220) the transaction value to ablockchain node 108 associated with the blockchain network 106 forinclusion in a block to be verified and posted to the blockchain.

In step 310, the receiving device 202 of the processing server 102 mayretrieve the transaction value via the receipt of a newly added block inthe blockchain that includes the transaction value therein. In step 312,the processing server 102 may (e.g., via the first entity associatedtherewith) perform the next action in the transaction. In the aboveexample, the next action may be payment of the $1,000 down payment priorto the due date. As part of the performance of the action, in step 314,the processor of the processing server 102 may execute the smartcontract associated with the transaction (e.g., identified via thereference included in the deterministic inputs). In some cases, thesmart contract may be executed automatically by the blockchain network106 upon satisfaction of the performance of the action (e.g., the smartcontract may detect the payment of the $1,000 to the second entity). Aspart of the execution of the smart contract, the deterministic inputsfor the transaction may be modified, such as by the changing of a flag,supplementing of a reference or confirmation number for the payment,etc.

In step 316, the hashing module 210 of the processing server 102 maygenerate a new transaction value for the transaction via the applicationof one or more hashing algorithms to the updated deterministic inputsfor the transaction, which may reflect the performance of the action. Insome instances, generation of the new transaction value may also includethe digital signing (e.g., via the signing module 216 of the processingserver 102) of the transaction value via the use of a private keyassociated with the first entity (e.g., and stored in the memory 206 ofthe processing server 102) and a suitable signing algorithm. In step318, the transmitting device 220 of the processing server 102 mayelectronically transmit the newly-generated transaction value to ablockchain node 108 associated with the blockchain network 106 forinclusion in a block that is verified and posted to the blockchain.

In step 320, the third party system 104 may determine an expected outputof the performance of the next action for the transaction by the firstentity, such as by execution (e.g., of a processor thereof) of theassociated smart contract using the deterministic inputs and estimationof the action by the first entity. In some cases, performance of step320 may include modification to the deterministic inputs as performed bythe processing server 102 in step 314. In step 322, the third partysystem 104 may generate (e.g., via a hashing module 210 and/orgeneration module 212) an expected transaction value for the transactionbased on the expected output of the performance of the next action.

In step 324, the third party system 104 may (e.g., via a receivingdevice 202 thereof) retrieve the new transaction value that was postedto the blockchain. In some embodiments, steps 320 and 322 may beperformed after, or concurrently with, step 324. In step 326, the thirdparty system 104 may verify (e.g., via a verification module 218) thenew transaction value by comparing it to the expected transaction value.In embodiments where the transaction value may be digitally signed, theverification may also include verification of the digital signature,which may be verified using a public key associated with the firstentity. Verification of the transaction value may thus ensure that thenext action of the transaction has been performed, with the transactionvalue on the blockchain being immutable proof of the action and suitablefor use in auditing.

Exemplary Method for Posting of Auditable, Immutable Data to aBlockchain

FIG. 4 illustrates a method 400 for the posting of auditable andimmutable data related to the performance of a transaction to ablockchain.

In step 402, a blockchain comprised of a plurality of blocks may bereceived by a receiving device (e.g., the receiving device 202) of aprocessing server (e.g., the processing server 102), each block beingcomprised of at least a block header and one or more transaction values,wherein each transaction value includes at least a transaction hash. Instep 404, a data file associated with a specific transaction included ina block in the blockchain may be received by the receiving device of theprocessing server, wherein the data file includes one or more variables.

In step 406, at least one of the one or more variables included in thedata file may be modified by a data modification module (e.g., the datamodification module 214) of the processing server. In step 408, a newhash value may be generated by a hashing module (e.g., of the hashingmodule 210) of the processing server via application of one or morehashing algorithms to the modified data file.

In step 410, a new transaction value may be generated by a generationmodule (e.g., the generation module 212) of the processing server basedon at least the generated new hash value and the specific transactionhash. In step 412, the generated new transaction value may be digitallysigned by a signing module (e.g., the signing module 216) of theprocessing server. In step 414, the signed new transaction value may beelectronically transmitted by a transmitting device (e.g., of thetransmitting device 220) of the processing server.

In one embodiment, the new transaction value may be further based on areference identifier associated with an executable script associatedwith the blockchain. In a further embodiment, the executable script maybe configured to execute the modified data file and output adeterministic response. In some embodiments, generating the newtransaction value may include hashing, by the hashing module of theprocessing server, at least the generated new hash value and thespecific transaction hash. In one embodiment, the method 400 may includestoring, in a database (e.g., the memory 206) of the processing server,a plurality of key-value pairs, wherein the plurality of key-value pairsincludes at least a first comprising the specific transaction hash as akey and the received data file as a value; and executing, by a queryingmodule (e.g., the querying module 208) of the processing server, a queryon the database to insert a new key-value pair comprising the generatednew hash value as a key and the modified data file as a value.

Exemplary Method for Auditing and Verification of Deterministic DataPosted to a Blockchain

FIG. 5 illustrates a method 500 for the auditing and verification ofdata posted to a blockchain based on deterministic inputs.

In step 502, a blockchain comprised of a plurality of blocks may bereceived by a receiving device (e.g., the receiving device 202) of aprocessing server (e.g., the processing server 102) each block beingcomprised of at least a block header and one or more transaction values,wherein each block header includes at least a timestamp and eachtransaction value includes at least a transaction hash. In step 504, afirst query may be executed by a querying module (e.g., the queryingmodule 208) of the processing server on the blockchain to identify afirst transaction value, wherein the first transaction value isassociated with an executable script.

In step 506, the executable script may be executed by a processor of theprocessing server using a plurality of predetermined input values toreceive at least one output variable. In step 508, a hash value may begenerated by a hashing module (e.g., the hashing module 210) of theprocessing server based on at least the plurality of predetermined inputvalues and the at least one output variable.

In step 510, a new transaction value may be generated by a generationmodule (e.g., the generation module 212) of the processing server basedon at least the generated hash value and the transaction hash includedin the first transaction value. In step 512, a second transaction valueincluded in a block in the blockchain may be verified by a verificationmodule (e.g., the verification module 218) of the processing serverwhere the second transaction value corresponds to the generated newtransaction value.

In one embodiment, verifying the second transaction value may comprise:executing, by the querying module of the processing server, a secondquery on the blockchain to identify the second transaction value; andverifying, by the verification module of the processing server, that thesecond transaction value is equivalent to the generated new transactionvalue. In some embodiments, generating the new transaction valueincludes hashing, by the hashing module of the processing server, atleast the generated hash value and the transaction hash included in thefirst transaction value.

In one embodiment, verifying the second transaction value may comprise:executing, by the querying module of the processing server, a secondquery on the blockchain to identify the second transaction value; andverifying, by the verification module of the processing server, adigital signature used to digitally sign the included transaction hash.In a further embodiment, the method 500 may even further includestoring, in a memory (e.g., the memory 206) of the processing server, apublic key, wherein verification of the digital signature uses thestored public key.

Computer System Architecture

FIG. 6 illustrates a computer system 600 in which embodiments of thepresent disclosure, or portions thereof, may be implemented ascomputer-readable code. For example, the processing server 102 of FIG. 1may be implemented in the computer system 600 using hardware, software,firmware, non-transitory computer readable media having instructionsstored thereon, or a combination thereof and may be implemented in oneor more computer systems or other processing systems. Hardware,software, or any combination thereof may embody modules and componentsused to implement the methods of FIGS. 3-5.

If programmable logic is used, such logic may execute on a commerciallyavailable processing platform configured by executable software code tobecome a specific purpose computer or a special purpose device (e.g.,programmable logic array, application-specific integrated circuit,etc.). A person having ordinary skill in the art may appreciate thatembodiments of the disclosed subject matter can be practiced withvarious computer system configurations, including multi-coremultiprocessor systems, minicomputers, mainframe computers, computerslinked or clustered with distributed functions, as well as pervasive orminiature computers that may be embedded into virtually any device. Forinstance, at least one processor device and a memory may be used toimplement the above described embodiments.

A processor unit or device as discussed herein may be a singleprocessor, a plurality of processors, or combinations thereof. Processordevices may have one or more processor “cores.” The terms “computerprogram medium,” “non-transitory computer readable medium,” and“computer usable medium” as discussed herein are used to generally referto tangible media such as a removable storage unit 618, a removablestorage unit 622, and a hard disk installed in hard disk drive 612.

Various embodiments of the present disclosure are described in terms ofthis example computer system 600. After reading this description, itwill become apparent to a person skilled in the relevant art how toimplement the present disclosure using other computer systems and/orcomputer architectures. Although operations may be described as asequential process, some of the operations may in fact be performed inparallel, concurrently, and/or in a distributed environment, and withprogram code stored locally or remotely for access by single ormulti-processor machines. In addition, in some embodiments the order ofoperations may be rearranged without departing from the spirit of thedisclosed subject matter.

Processor device 604 may be a special purpose or a general purposeprocessor device specifically configured to perform the functionsdiscussed herein. The processor device 604 may be connected to acommunications infrastructure 606, such as a bus, message queue,network, multi-core message-passing scheme, etc. The network may be anynetwork suitable for performing the functions as disclosed herein andmay include a local area network (LAN), a wide area network (WAN), awireless network (e.g., WiFi), a mobile communication network, asatellite network, the Internet, fiber optic, coaxial cable, infrared,radio frequency (RF), or any combination thereof. Other suitable networktypes and configurations will be apparent to persons having skill in therelevant art. The computer system 600 may also include a main memory 608(e.g., random access memory, read-only memory, etc.), and may alsoinclude a secondary memory 610. The secondary memory 610 may include thehard disk drive 612 and a removable storage drive 614, such as a floppydisk drive, a magnetic tape drive, an optical disk drive, a flashmemory, etc.

The removable storage drive 614 may read from and/or write to theremovable storage unit 618 in a well-known manner. The removable storageunit 618 may include a removable storage media that may be read by andwritten to by the removable storage drive 614. For example, if theremovable storage drive 614 is a floppy disk drive or universal serialbus port, the removable storage unit 618 may be a floppy disk orportable flash drive, respectively. In one embodiment, the removablestorage unit 618 may be non-transitory computer readable recordingmedia.

In some embodiments, the secondary memory 610 may include alternativemeans for allowing computer programs or other instructions to be loadedinto the computer system 600, for example, the removable storage unit622 and an interface 620. Examples of such means may include a programcartridge and cartridge interface (e.g., as found in video gamesystems), a removable memory chip (e.g., EEPROM, PROM, etc.) andassociated socket, and other removable storage units 622 and interfaces620 as will be apparent to persons having skill in the relevant art.

Data stored in the computer system 600 (e.g., in the main memory 608and/or the secondary memory 610) may be stored on any type of suitablecomputer readable media, such as optical storage (e.g., a compact disc,digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage(e.g., a hard disk drive). The data may be configured in any type ofsuitable database configuration, such as a relational database, astructured query language (SQL) database, a distributed database, anobject database, etc. Suitable configurations and storage types will beapparent to persons having skill in the relevant art.

The computer system 600 may also include a communications interface 624.The communications interface 624 may be configured to allow software anddata to be transferred between the computer system 600 and externaldevices. Exemplary communications interfaces 624 may include a modem, anetwork interface (e.g., an Ethernet card), a communications port, aPCMCIA slot and card, etc. Software and data transferred via thecommunications interface 624 may be in the form of signals, which may beelectronic, electromagnetic, optical, or other signals as will beapparent to persons having skill in the relevant art. The signals maytravel via a communications path 626, which may be configured to carrythe signals and may be implemented using wire, cable, fiber optics, aphone line, a cellular phone link, a radio frequency link, etc.

The computer system 600 may further include a display interface 602. Thedisplay interface 602 may be configured to allow data to be transferredbetween the computer system 600 and external display 630. Exemplarydisplay interfaces 602 may include high-definition multimedia interface(HDMI), digital visual interface (DVI), video graphics array (VGA), etc.The display 630 may be any suitable type of display for displaying datatransmitted via the display interface 602 of the computer system 600,including a cathode ray tube (CRT) display, liquid crystal display(LCD), light-emitting diode (LED) display, capacitive touch display,thin-film transistor (TFT) display, etc.

Computer program medium and computer usable medium may refer tomemories, such as the main memory 608 and secondary memory 610, whichmay be memory semiconductors (e.g., DRAMs, etc.). These computer programproducts may be means for providing software to the computer system 600.Computer programs (e.g., computer control logic) may be stored in themain memory 608 and/or the secondary memory 610. Computer programs mayalso be received via the communications interface 624. Such computerprograms, when executed, may enable computer system 600 to implement thepresent methods as discussed herein. In particular, the computerprograms, when executed, may enable processor device 604 to implementthe methods illustrated by FIGS. 3-5, as discussed herein. Accordingly,such computer programs may represent controllers of the computer system600. Where the present disclosure is implemented using software, thesoftware may be stored in a computer program product and loaded into thecomputer system 600 using the removable storage drive 614, interface620, and hard disk drive 612, or communications interface 624.

The processor device 604 may comprise one or more modules or enginesconfigured to perform the functions of the computer system 600. Each ofthe modules or engines may be implemented using hardware and, in someinstances, may also utilize software, such as corresponding to programcode and/or programs stored in the main memory 608 or secondary memory610. In such instances, program code may be compiled by the processordevice 604 (e.g., by a compiling module or engine) prior to execution bythe hardware of the computer system 600. For example, the program codemay be source code written in a programming language that is translatedinto a lower level language, such as assembly language or machine code,for execution by the processor device 604 and/or any additional hardwarecomponents of the computer system 600. The process of compiling mayinclude the use of lexical analysis, preprocessing, parsing, semanticanalysis, syntax-directed translation, code generation, codeoptimization, and any other techniques that may be suitable fortranslation of program code into a lower level language suitable forcontrolling the computer system 600 to perform the functions disclosedherein. It will be apparent to persons having skill in the relevant artthat such processes result in the computer system 600 being a speciallyconfigured computer system 600 uniquely programmed to perform thefunctions discussed above.

Techniques consistent with the present disclosure provide, among otherfeatures, systems and methods for the posting and verification ofauditable and immutable data on a blockchain. While various exemplaryembodiments of the disclosed system and method have been described aboveit should be understood that they have been presented for purposes ofexample only, not limitations. It is not exhaustive and does not limitthe disclosure to the precise form disclosed. Modifications andvariations are possible in light of the above teachings or may beacquired from practicing of the disclosure, without departing from thebreadth or scope.

What is claimed is:
 1. A method for posting of auditable, immutable datato a blockchain, comprising: receiving, by a receiving device of aprocessing server, a blockchain comprised of a plurality of blocks, eachblock being comprised of at least a block header and one or moretransaction values, wherein each transaction value includes at least atransaction hash; receiving, by the receiving device of the processingserver, a data file associated with a specific transaction hash includedin a block in the blockchain, wherein the data file includes one or morevariables; modifying, by a data modification module of the processingserver, at least one of the one or more variables included in the datafile; generating, by a hashing module of the processing server, a newhash value via application of one or more hashing algorithms to themodified data file; generating, by a generation module of the processingserver, a new transaction value based on at least the generated new hashvalue and the specific transaction hash; digitally signing, by a signingmodule of the processing server, the generated new transaction value;and electronically transmitting, by a transmitting device of theprocessing server, the signed new transaction value.
 2. The method ofclaim 1, wherein the new transaction value is further based on areference identifier associated with an executable script associatedwith the blockchain.
 3. The method of claim 2, wherein the executablescript is configured to execute the modified data file and output adeterministic response.
 4. The method of claim 1, wherein generating thenew transaction value includes hashing, by the hashing module of theprocessing server, at least the generated new hash value and thespecific transaction hash.
 5. The method of claim 1, further comprising:storing, in a database of the processing server, a plurality ofkey-value pairs, wherein the plurality of key-value pairs includes atleast a first comprising the specific transaction hash as a key and thereceived data file as a value; and executing, by a querying module ofthe processing server, a query on the database to insert a new key-valuepair comprising the generated new hash value as a key and the modifieddata file as a value.
 6. A method for auditing and verification ofdeterministic data posted to a blockchain, comprising: receiving, by areceiving device of a processing server, a blockchain comprised of aplurality of blocks, each block being comprised of at least a blockheader and one or more transaction values, wherein each block headerincludes at least a timestamp and each transaction value includes atleast a transaction hash; executing, by a querying module of theprocessing server, a first query on the blockchain to identify a firsttransaction value, wherein the first transaction value is associatedwith an executable script; executing, by a processor of the processingserver, the executable script using a plurality of predetermined inputvalues to receive at least one output variable; generating, by a hashingmodule of the processing server, a hash value based on at least theplurality of predetermined input values and the at least one outputvariable; generating, by a generation module of the processing server, anew transaction value based on at least the generated hash value and thetransaction hash included in the first transaction value; and verifying,by a verification module of the processing server, a second transactionvalue included in a block in the blockchain where the second transactionvalue corresponds to the generated new transaction value.
 7. The methodof claim 6, wherein verifying the second transaction value comprises:executing, by the querying module of the processing server, a secondquery on the blockchain to identify the second transaction value; andverifying, by the verification module of the processing server, that thesecond transaction value is equivalent to the generated new transactionvalue.
 8. The method of claim 6, wherein verifying the secondtransaction value comprises: executing, by the querying module of theprocessing server, a second query on the blockchain to identify thesecond transaction value; and verifying, by the verification module ofthe processing server, a digital signature used to digitally sign theincluded transaction hash.
 9. The method of claim 8, further comprising:storing, in a memory of the processing server, a public key, whereinverification of the digital signature uses the stored public key. 10.The method of claim 6, wherein generating the new transaction valueincludes hashing, by the hashing module of the processing server, atleast the generated hash value and the transaction hash included in thefirst transaction value.
 11. A system for posting of auditable,immutable data to a blockchain, comprising: a receiving device of aprocessing server configured to receive a blockchain comprised of aplurality of blocks, each block being comprised of at least a blockheader and one or more transaction values, wherein each transactionvalue includes at least a transaction hash, and a data file associatedwith a specific transaction hash included in a block in the blockchain,wherein the data file includes one or more variables; a datamodification module of the processing server configured to modify atleast one of the one or more variables included in the data file; ahashing module of the processing server configured to generate a newhash value via application of one or more hashing algorithms to themodified data file; a generation module of the processing serverconfigured to generate a new transaction value based on at least thegenerated new hash value and the specific transaction hash; a signingmodule of the processing server configured to digitally sign thegenerated new transaction value; and a transmitting device of theprocessing server configured to electronically transmit the signed newtransaction value.
 12. The system of claim 11, wherein the newtransaction value is further based on a reference identifier associatedwith an executable script associated with the blockchain.
 13. The systemof claim 12, wherein the executable script is configured to execute themodified data file and output a deterministic response.
 14. The systemof claim 11, wherein generating the new transaction value includeshashing, by the hashing module of the processing server, at least thegenerated new hash value and the specific transaction hash.
 15. Thesystem of claim 11, further comprising: a database of the processingserver configured to store a plurality of key-value pairs, wherein theplurality of key-value pairs includes at least a first comprising thespecific transaction hash as a key and the received data file as avalue; and a querying module of the processing server configured toexecute a query on the database to insert a new key-value paircomprising the generated new hash value as a key and the modified datafile as a value.
 16. A system for auditing and verification ofdeterministic data posted to a blockchain, comprising: a receivingdevice of a processing server configured to receive a blockchaincomprised of a plurality of blocks, each block being comprised of atleast a block header and one or more transaction values, wherein eachblock header includes at least a timestamp and each transaction valueincludes at least a transaction hash; a querying module of theprocessing server configured to execute a first query on the blockchainto identify a first transaction value, wherein the first transactionvalue is associated with an executable script; a processor of theprocessing server configured to execute the executable script using aplurality of predetermined input values to receive at least one outputvariable; a hashing module of the processing server configured togenerate a hash value based on at least the plurality of predeterminedinput values and the at least one output variable; a generation moduleof the processing server configured to generate a new transaction valuebased on at least the generated hash value and the transaction hashincluded in the first transaction value; and a verification module ofthe processing server configured to verify a second transaction valueincluded in a block in the blockchain where the second transaction valuecorresponds to the generated new transaction value.
 17. The system ofclaim 16, wherein verifying the second transaction value comprises:executing, by the querying module of the processing server, a secondquery on the blockchain to identify the second transaction value; andverifying, by the verification module of the processing server, that thesecond transaction value is equivalent to the generated new transactionvalue.
 18. The system of claim 16, wherein verifying the secondtransaction value comprises: executing, by the querying module of theprocessing server, a second query on the blockchain to identify thesecond transaction value; and verifying, by the verification module ofthe processing server, a digital signature used to digitally sign theincluded transaction hash.
 19. The system of claim 18, furthercomprising: a memory of the processing server configured to store apublic key, wherein verification of the digital signature uses thestored public key.
 20. The system of claim 16, wherein generating thenew transaction value includes hashing, by the hashing module of theprocessing server, at least the generated hash value and the transactionhash included in the first transaction value.